package cn.yuanqiao.archive.archiveBorrow.service;

import cn.yuanqiao.archive.archiveBorrow.domain.YqDaBorrow;
import cn.yuanqiao.archive.archiveBorrow.domain.YqdaborrowItem;
import cn.yuanqiao.common.core.domain.R;

import java.util.List;
import java.util.Map;

/**
 * archiveBorrowService接口
 * 
 * @author yuanqiao
 * @date 2023-07-14
 */
public interface IYqDaBorrowService
{
    /**
     * 查询archiveBorrow
     *
     * @param borrowId archiveBorrow主键
     * @return archiveBorrow
     */
    public YqDaBorrow selectYqDaBorrowByBorrowId(Long borrowId);

    /**
     * 查询archiveBorrow列表
     *
     * @param yqDaBorrow archiveBorrow
     * @return archiveBorrow集合
     */
    public List<YqDaBorrow> selectYqDaBorrowList(YqDaBorrow yqDaBorrow);

    public List<YqDaBorrow> selectYqDaBorrowList1(YqDaBorrow yqDaBorrow);

    /**
     * 新增archiveBorrow
     *
     * @param yqDaBorrow archiveBorrow
     * @return 结果
     */
    public int insertYqDaBorrow(YqDaBorrow yqDaBorrow);

    /**
     * 修改archiveBorrow
     *
     * @param yqDaBorrow archiveBorrow
     * @return 结果
     */
    public int updateYqDaBorrow(YqDaBorrow yqDaBorrow);

    /**
     * 修改archiveBorrow
     *
     * @param yqDaBorrow archiveBorrow
     * @return 结果
     */
    public int updateYqDaBorrowStatus(YqDaBorrow yqDaBorrow);

    /**
     * 批量删除archiveBorrow
     *
     * @param borrowIds 需要删除的archiveBorrow主键集合
     * @return 结果
     */
    public int deleteYqDaBorrowByBorrowIds(Long[] borrowIds);

    /**
     * 删除archiveBorrow信息
     *
     * @param borrowId archiveBorrow主键
     * @return 结果
     */
    public int deleteYqDaBorrowByBorrowId(Long borrowId);

    List<YqdaborrowItem> selectYqDaBorrowItemList(YqdaborrowItem yqdaborrowItem);

    int endWorkFlowByInstanceId(YqDaBorrow yqDaBorrow);

    /**
     * 只修改borrow表单，不修改item表单，仅用于修改开始时间和结束时间||状态值
     * @param yqDaBorrow
     * @return
     */
    int updateArchiveBorrowDate(YqDaBorrow yqDaBorrow);

    int updateYqDaBorrowMyd(YqDaBorrow yqDaBorrow);

    public List<Map<String, Object>> getArchiveListByArchiveCategory(Long categoryId,String archiveId);

    int updateAllStatus(Long userId);

    List<Map<String, Object>> executeSqlFunction(String sql);

    int borrowItemMinusOne(String itemId);

    YqdaborrowItem selectYqDaBorrowItemById(String itemId);

    int borrowItemMinusOnePrint(String itemId);

    void cuihuan(Long id, String msg);

    String receive(Long borrowId);

    YqDaBorrow getdetail(Long borrowId);
}
